Four frames that stress the core master: the light palette, dynamic type at 200%, an approval under queue and time pressure, and a peer that supplies almost nothing. Tokens, geometry and component anatomy are inherited unchanged from A Master Core v1.
24pt gutter at 390dp and above, 20pt below 375dp. Vertical rhythm never compresses — the 8pt block spacing is fixed, and long content scrolls instead.
No fixed row heights anywhere. Titles wrap to three lines before ellipsis. Metadata splits from one line into one fact per line past ~150% type. Paths and commands break on characters, never truncate.
48dp minimum always; controls grow with type but never shrink. Inline actions promote to full-width when their label would clip. Decision bar goes to stacked full-width buttons past 200%, Deny first in the reading order.
Screen header, state block, composer and decision bar stay reachable at every size. Composer respects IME and system insets. If a pinned region would exceed 45% of the viewport it scrolls internally rather than stealing the body.
One state owns the row and the action. Lower states may appear only as a qualifying line, as Running does under an open approval.
Consequence, risk and recommendation originate in the daemon and are auditable. The client may format them; it may not compose, infer or soften them.
A countdown that reaches zero denies. Loss of connection denies. Process death denies. A request is never granted by inaction.
System back, swipe and scrim taps do not resolve the request. Back is intercepted and the sheet stays; the decision is always explicit.
On a danger-class request the recommendation becomes Deny, the accent fill moves to Deny, and Allow becomes the bordered control. Sizes stay equal.